contents
시스템 버스는 컴퓨터의 주요 구성 요소들을 연결하여 서로 데이터와 명령을 주고받을 수 있게 하는 주된 통신 경로입니다. 컴퓨터의 중추 신경계 또는 주요 고속도로라고 생각할 수 있으며, CPU, 주 메모리(RAM), 그리고 입출력(I/O) 장치들을 연결합니다.
현대 컴퓨터 아키텍처는 더 복잡한 점대점(point-to-point) 상호연결 방식을 사용하도록 발전했지만, 전통적인 시스템 버스 개념은 컴퓨터 작동 방식을 이해하는 데 기본이 됩니다.
세 가지 주요 버스
시스템 버스는 단일 배선이 아니라, 각각 특정 역할을 하는 세 개의 개별 버스 모음입니다.
비유: 도시의 도로 시스템을 상상해 보세요.
- 주소 버스는 어디로 가야 할지 알려주는 도로 표지판과 주소 체계입니다.
- 데이터 버스는 트럭(데이터)이 이동하는 도로 자체입니다.
- 제어 버스는 교통 흐름을 지시하는 신호등 체계입니다.
1. 주소 버스 📍
주소 버스는 CPU에서 다른 구성 요소로 가는 단방향 통로입니다. 그 유일한 목적은 물리 메모리 주소를 지정하는 것입니다.
- 기능: CPU가 RAM의 특정 위치에서 데이터를 읽거나 쓰려고 할 때, 그 위치의 고유한 주소를 주소 버스에 보냅니다.
- 버스 폭: 주소 버스의 폭(가지고 있는 전선 또는 라인의 수)은 시스템이 주소를 지정할 수 있는 최대 메모리 양을 결정합니다. 32비트 주소 버스는 $2^{32}$개의 고유한 메모리 위치(4GB)에 접근할 수 있습니다. 64비트 주소 버스는 $2^{64}$개의 위치(16엑사바이트)에 접근할 수 있어, 현재 기술로는 사실상 무한합니다.
2. 데이터 버스 🚚
데이터 버스는 CPU와 다른 구성 요소 간에 실제 데이터를 전송하는 양방향 통로입니다.
- 기능: 주소 버스에서 주소가 지정된 후, 데이터 버스는 해당 위치로 데이터를 옮기거나 해당 위치에서 데이터를 가져오는 데 사용됩니다.
- 버스 폭: 데이터 버스의 폭은 한 번에 전송할 수 있는 데이터의 양을 결정합니다. 64비트 데이터 버스는 단일 작업으로 64비트(8바이트)의 데이터를 전송할 수 있습니다. 데이터 버스가 넓을수록 일반적으로 시스템 성능이 향상됩니다.
3. 제어 버스 🚦
제어 버스는 모든 구성 요소의 활동을 조율하는 데 사용되는 다양한 신호들의 모음입니다. 시스템에 주소와 데이터로 무엇을 할지 알려줍니다.
- 기능: 명령어와 타이밍 신호를 전달합니다. 일반적인 제어 신호는 다음과 같습니다.
- 메모리 읽기: RAM에게 지정된 주소의 데이터를 데이터 버스에 놓으라고 알리는 신호.
- 메모리 쓰기: RAM에게 데이터 버스에서 데이터를 가져와 지정된 주소에 저장하라고 알리는 신호.
- 버스 요청: 특정 구성 요소가 버스를 사용해야 함을 나타내는 신호.
- 버스 승인: 특정 구성 요소에 버스 사용이 허가되었음을 나타내는 신호.
- 클럭 신호: 모든 구성 요소의 동작을 동기화하는 신호.
함께 작동하는 방식: 읽기 동작
CPU가 RAM에서 데이터를 읽는 간단한 과정을 살펴보겠습니다.
- CPU가 데이터 요청: CPU가 메모리 위치
0x1A2B의 데이터를 필요로 합니다. - 주소 버스: CPU가 주소
0x1A2B를 주소 버스에 보냅니다. - 제어 버스: CPU가 제어 버스를 통해 "메모리 읽기" 신호를 보냅니다.
- 메모리 컨트롤러: 주 메모리 컨트롤러가 주소와 읽기 신호를 확인하고, 위치
0x1A2B에 저장된 데이터를 검색합니다. - 데이터 버스: 메모리 컨트롤러가 검색된 데이터를 데이터 버스에 보냅니다.
- CPU가 데이터 수신: CPU가 데이터 버스에서 데이터를 읽어와 계산에 사용합니다.
이 모든 단계는 제어 버스의 클럭 신호에 의해 완벽하게 동기화된 춤처럼, 초당 수백만 번씩 일어납니다.
발전 과정: 프론트 사이드 버스에서 점대점 방식으로
모든 것을 연결하는 단일 시스템 버스의 전통적인 모델은 프론트 사이드 버스(FSB) 로 알려져 있습니다. 하지만 CPU와 RAM이 빨라지면서 이는 주요 병목 현상이 되었습니다. 모든 구성 요소가 같은 고속도로를 사용하기 위해 경쟁해야 했기 때문입니다.
현대 컴퓨터 아키텍처는 단일 시스템 버스를 대부분 더 빠르고 전용된 점대점(point-to-point) 상호연결 방식으로 대체했습니다.
- 예시: 인텔의 퀵패스 인터커넥트(QPI) 와 AMD의 하이퍼트랜스포트(HyperTransport).
- 작동 방식: 공유 버스 대신, CPU와 RAM과 같은 구성 요소들이 서로에게 직접 연결된 전용 통로를 가집니다. 이는 마치 도시의 가장 중요한 건물들 사이에 공용 도로를 완전히 우회하는 전용 고속도로를 건설하는 것과 같습니다.
물리적인 구현 방식은 바뀌었지만, 주소 지정, 데이터 전송, 그리고 제어라는 논리적 개념은 컴퓨터 구성 요소들이 통신하는 방식의 기초로 남아 있습니다.
references